//
//  FileUtil.h
//  Weike
//
//  Created by leirz on 14-7-24.
//  Copyright (c) 2014年 winupon. All rights reserved.
//

#import <Foundation/Foundation.h>

#define CACHE_TYPE_CHAT @"chat"      // 单聊、群聊
#define CACHE_TYPE_UPLOAD @"upload"  // 文件上传
#define CACHE_TYPE_FILES @"files"    // 其他文件
#define CACHE_TYPE_DOCS @"docs" // 文档
#define CACHE_TYPE_MOVIES @"movie" // 视频

@interface FileUtil : NSObject

/**
 *  获取应用根目录
 *
 */
+ (NSString *)getRootDir;

/**
 *  获取文件全路径(如果是http路径，则直接返回，否则拼接应用根目录)
 */
+ (NSString *)getFullPath:(NSString *)path;

/**
 *  获取缓存相对目录(不含根目录和文件)
 */
+ (NSString *)getRelativeDir:(NSString *)userId cacheType:(NSString *)cacheType;

/**
 *  将绝对路径转成相对路径
 *
 */
+ (NSString *)toRelativePath:(NSString *)path;

/**
 * 获取插件目录Documents目录下
 * /Users/apple/Library/Developer.../Documents/’userid‘/upload
 */
+ (NSString *)getUpdateDir:(NSString *)userId cacheType:(NSString *)uploadType;

/**
 * 获取缓存目录Documents目录下
 * /Users/apple/Library/Developer.../Documents /55f78979848e913ccaf8f875/upload
 */
+ (NSString *)getCacheDir:(NSString *)userId cacheType:(NSString *)cacheType;

/**
 * 获取第三方资源目录
 */
+ (NSString *)getResourcesDir;

/**
 * 获取随机字符串
 */
+ (NSString *)getRandomString;

/**
 * 获取随机的文件名
 */
+ (NSString *)getRandomFileName:(NSString *)extension;

/**
 * 获取随机的文件路径
 */
+ (NSString *)getRandomPath:(NSString *)userId cacheType:(NSString *)cacheType extension:(NSString *)extension;

/**
 * 创建目录
 */
+ (void)mkdirs:(NSString *)dir;

/**
 *  创建目录
 *
 *  @param path 文件绝对路径
 */
+ (void)mkdirsAtPath:(NSString *)path;

/**
 * 判断路径是否存在
 */
+ (BOOL)exists:(NSString *)path;

/**
 * 删除文件
 */
+ (BOOL)deleteFile:(NSString *)path;

/**
 * 删除缓存目录
 */
+ (BOOL)deleteCacheDir:(NSString *)userId cacheType:(NSString *)cacheType;

/**
 * 保存图片
 */
+ (NSData *)saveImage:(UIImage *)image path:(NSString *)path;

/**
 * 压缩图片质量
 */
+ (NSData *)compressImageQuality:(UIImage *)image;

/**
 * 压缩图片质量
 */
+ (UIImage *)compressImageQualityToImage:(UIImage *)image;

/**
 * 复制文件
 */
+ (BOOL)copyFile:(NSString *)fromPath toPath:(NSString *)toPath;

/**
 * 清空文件缓存
 */
+ (void)clearCache:(NSString *)userId;

/**
 *  获取本地文件
 */
+ (UIImage *)imageWithPath:(NSString *)path;

/**
 *  获取本地文件大小，kb
 */
+ (NSInteger) getFileSize:(NSString*) path;

/**
 * 判断路径是文件还是文件夹
 */
+ (BOOL)isFileDir:(NSString *)filePath;



@end
